The present disclosure relates to management of virtual machines and, more specifically, using machine learning for virtual machine migration plan generation.
A contemporary virtual machine (VM) is a software implementation of a machine (i.e., a computer) that executes programs like a physical machine. The VM typically emulates a physical computing environment, but requests for central processing unit (CPU), memory, hard disk, network and other hardware resources are managed by a virtualization layer which translates these requests to the underlying physical hardware. VMs are created within a virtualization layer, such as a hypervisor or a virtualization platform that runs on top of a client or server operating system. The virtualization layer is typically used to create many individual, isolated VMs within a single, physical machine. Multiple VMs are typically used in server consolidation, where different services that were previously run on individual machines are instead run in isolated VMs on the same physical machine.
A persistent challenge to providers of cloud hosting and other network management services is the efficient use of system resources. Efficient allocation of VMs to different network nodes, e.g., network servers, is desired in order to maximize the use of network resources and reduce the number of physical servers and/or physical resources required to provide computing services to customers. Modern virtual machine management software seeks either consolidation of VMs for power savings or load-balancing for performance. While various methods for computing a better load-balanced or consolidated goal state exist, the process of determining a migration plan to get from the system's current state to the desired goal is particularly challenging, as a large number of intermediate states may be needed and some intermediate states may not be directly achievable due to a number of system constraints.